﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>SendMode</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"><LINK 
href="../css/commands.css" type=text/css rel=stylesheet><LINK media=print 
href="../css/print.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD>
<BODY>
<H1>SendMode <SPAN class=small65>[v1.0.43+]</SPAN></H1>


<P>让 <A href="Send.htm">Send</A> 命令和 SendInput 或 SendPlay 具有同样的功能而不是其默认的 
(SendEvent) 。也让 Click 和 MouseMove/Click/Drag 使用了指定的方法。</P>
<P class=CommandSyntax>SendMode Input|Play|Event|InputThenPlay</P>
<P>第一个参数是下面的某个单词：</P>
<P><STRONG>Event</STRONG>: 这是所有脚本开始时默认使用的。它让 <A href="Send.htm">Send</A>, <A 
href="Send.htm">SendRaw</A>, <A href="Click.htm">Click</A> 和 <A 
href="MouseMove.htm">MouseMove</A>/<A href="MouseClick.htm">Click</A>/<A 
href="MouseClickDrag.htm">Drag</A> 使用 <A href="Send.htm#SendPlay">SendEvent</A> 
方法。</P>
<P><STRONG>Input</STRONG>: 让 <A href="Send.htm">Send</A>, <A 
href="Send.htm">SendRaw</A>, <A href="Click.htm">Click</A> 和 <A 
href="MouseMove.htm">MouseMove</A>/<A href="MouseClick.htm">Click</A>/<A 
href="MouseClickDrag.htm">Drag</A> 切换到 <A 
href="Send.htm#SendInput">SendInput</A> 方法。已知限制：</P>
<UL>
  <LI>Windows 资源管理器忽略 SendInput&nbsp;某些导航的热键例如 Alt+左箭头。 要绕弯解决这问题，使用 
  <EM>SendEvent !{Left}</EM> 或 <EM>SendInput {Backspace}</EM> 。 </LI></UL>
<P><STRONG>InputThenPlay</STRONG> [v1.0.43.02+]: 和上面的一样，除了当 SendInput&nbsp;<A 
href="Send.htm#SendInputUnavail">不可用</A> 时恢复为 Play 模式 (下面的) 而不是退回到 Event 
&nbsp;模式。这也会促使 <A href="Send.htm#SendInput">SendInput 命令</A> 它自身在 SendInput 
不可用时恢复到 Play 模式。</P>
<P><STRONG><A name=Play></A>Play</STRONG>: 让 <A href="Send.htm">Send</A>, <A 
href="Send.htm">SendRaw</A>, <A href="Click.htm">Click</A> 和 <A 
href="MouseMove.htm">MouseMove</A>/<A href="MouseClick.htm">Click</A>/<A 
href="MouseClickDrag.htm">Drag</A> 切换到 <A href="Send.htm#SendPlay">SendPlay</A> 
方法。<A href="MouseClickDrag.htm"></A><BR>已知限制：</P>
<UL>
  <LI>不存在当前键盘布局上的字符 (例如英语里的 &Ocirc;&nbsp;) 不能被发送。要绕弯解决这问题，使用 <A 
  href="Send.htm#SendEvent">SendEvent</A> 。 
  <LI>例如在那些写字板和 Metapad 的 RichEdit(富文本编辑框) 控件 (也可能其他控件) 
  里模拟鼠标拖选可能无效。要为一个特别的拖选使用一个替换的模式，参照这个例子： <EM><A 
  href="Send.htm#SendEvent">SendEvent</A> {Click 6, 52, down}{Click 45, 52, 
  up}</EM> 
  <LI>模拟鼠标滚轮的旋转仅产生在一个方向的移动 (通常是向下的，但在某些应用程序里是向上的)。而且在例如微软 Word 
  和记事本应用程序中滚轮旋转可能无效。要为一个特别的旋转使用一个替换的模式，参照这个例子：<EM><A 
  href="Send.htm#SendEvent">SendEvent</A> {WheelDown 5}</EM> 
  <LI>当在自动执行部分 (脚本顶部) 使用 <EM>SendMode Play</EM> ，将影响所有重映射的按键并可能失去它们的某些功能。详见 <A 
  href="../misc/Remap.htm#SendPlay">SendPlay 重映射限制</A> 。 </LI></UL>
<h3>注意</h3>
<P>由于 SendMode 也改变了 <A href="Click.htm">Click</A> 和 <A 
href="MouseMove.htm">MouseMove</A>/<A href="MouseClick.htm">Click</A>/<A 
href="MouseClickDrag.htm">Drag</A> 的模式，当你想要为一个特别的鼠标事件使用一个不同的模式时可能很多次了。最简单的方式就是通过 
<A href="Send.htm#Click">{Click}</A> 来实施。例如：</P><PRE>SendEvent {Click 100, 200}  <SPAN class=CodeCom>; SendEvent 使用更旧更传统的方法点击。</SPAN></PRE>
<P>如果 SendMode 用在了自动执行部分 (脚本顶部)，它也会影响&nbsp;<A 
href="../misc/Remap.htm">键盘和鼠标重映射</A> 。尤其是如果你在重映射时使用了 <EM>SendMode Play</EM>，请看 
<A href="../misc/Remap.htm#SendPlay">SendPlay 重映射限制</A> 。</P>
<P>每个再次启动的 <A href="../misc/Threads.htm">thread</A> (例如一个 <A 
href="../Hotkeys.htm">hotkey</A>,&nbsp;<A href="Menu.htm">自定义菜单项</A> 或&nbsp;<A 
href="SetTimer.htm">定时的</A> 子程序) 都以此命令的默认设置重新开始。在自动执行部分 (脚本顶部) 
使用此命令可以改变那个默认设置。</P>
<h3>相关命令</h3>
<P><A href="Send.htm">Send</A>, <A href="SetKeyDelay.htm">SetKeyDelay</A>, <A 
href="SetMouseDelay.htm">SetMouseDelay</A>, <A href="Click.htm">Click</A>, <A 
href="MouseClick.htm">MouseClick</A>, <A 
href="MouseClickDrag.htm">MouseClickDrag</A>, <A 
href="MouseMove.htm">MouseMove</A> </P>
<h3>示例</h3><PRE class=NoIndent>SendMode Input<BR>SendMode InputThenPlay</PRE>
</BODY></HTML>
